#ifndef MATH_H
#define MATH_H

#include <iostream>

using namespace std;

struct Matrix4x4 {
	Matrix4x4() {
		_11 = _12 = _13 = _14 = 0.0;
		_21 = _22 = _23 = _24 = 0.0;
		_31 = _32 = _33 = _34 = 0.0;
		_41 = _42 = _43 = _44 = 0.0;
	}
	float _11, _21, _31, _41;
	float _12, _22, _32, _42;
	float _13, _23, _33, _43;
	float _14, _24, _34, _44;
};

std::ostream& operator << (std::ostream& out, const Matrix4x4 m);
bool operator == (const Matrix4x4 m1, Matrix4x4 m2);

class Math {
public:
	virtual Matrix4x4 createIdentMatrix() = 0;
};

Math& createMath();

#endif